﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Web.UI.WebControls;
using ProyectoVuelos.Presentacion.IContrato;
using ProyectoVuelos.Logica.RegistroUsuario;
using ProyectoVuelos.Entidades;

namespace ProyectoVuelos.Presentacion.Presentador
{
    public class PresentadorInformacionUsuario
    {
        private IContratoInformacionUsuario _vista;
        private LogicaRegistroUsuario _miLogica = new LogicaRegistroUsuario();
        private List<Compra> _miListaCompras;

        #region Constructor

        public PresentadorInformacionUsuario(IContratoInformacionUsuario laVista)
        {
            this._vista = laVista;
        }

        #endregion

        public void Page_Load(object sender, EventArgs e)
        {
            try
            {
                Cuenta miCuenta = (Cuenta)(_vista.Sesion["cuentaSession"]);
                int idPersona = _miLogica.RetornoIdCuenta(miCuenta.Nombre);
                Usuario personaDatos = _miLogica.RetornoPersonaPorIdCuenta(idPersona);
                string nombre = personaDatos.Nombre.ToString() + " " + personaDatos.SegundoNombre.ToString();
                string apellido = personaDatos.Apellido.ToString() + " "  +personaDatos.SegundoApellido.ToString();
                string fechaNacimiento = personaDatos.FechaNacimiento.ToShortDateString();

                _vista.LabelNombre.Text = nombre;
                _vista.LabelApellido.Text = apellido;
                _vista.LabelCedula.Text = personaDatos.Cedula.ToString();
                _vista.LabelEmail.Text = personaDatos.Email.ToString();
                _vista.LabelFechan.Text = fechaNacimiento;
                _vista.LabelPasaporte.Text = personaDatos.Pasaporte.ToString();

                LlenarGridViewComprasUsuario(miCuenta.Nombre);
            }
            catch

            {
            }
        }

        public void LlenarGridViewComprasUsuario(string persona)
        {
            Cuenta miCuenta = (Cuenta)(_vista.Sesion["cuentaSession"]);
            List<Compra> _miListaCompras = _miLogica.RetornoComprasCuenta(miCuenta.Nombre);

            if (_miListaCompras != null)
            {
                _vista.GridConsultar.DataSource = cargarDetalle(_miListaCompras);
                _vista.GridConsultar.DataBind();
            }
        }


        public DataTable cargarDetalle(List<Compra> _milista)
        {
            DataTable table = new DataTable();
            
            table.Columns.Add("Numero de Compra", typeof(string));
            table.Columns.Add("Fecha De la Compra", typeof(string));
            table.Columns.Add("Monto", typeof(string));

            foreach (Compra compras in _milista)
            {
                table.Rows.Add(compras.Codigo, compras.FechaCompra.Substring(0,10), compras.MontoTotal);
            }

            return table;
        }

        public void gridConsultar_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gridConsultar_PageIndexChanging(sender, e);
        }

        public void ConsultarRowCommand(object sender, GridViewCommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument);
            GridViewRow row = _vista.GridConsultar.Rows[index];
            string cuentaCod = Convert.ToString(row.Cells[1].Text);
            int facturaCodigo = Convert.ToInt16(cuentaCod);
            Cuenta miCuenta = (Cuenta)(_vista.Sesion["cuentaSession"]);

            int sesionFactura = _miLogica.RetornoIdFacturaParametro(facturaCodigo, miCuenta.Nombre);

            _vista.Sesion["idFactura"] = sesionFactura;
            _vista.Redireccionar("ResultadoCompra.aspx");
        }
    }
    
}